Skip to content

Conversation

@TomFinley
Copy link
Contributor

@TomFinley TomFinley commented Dec 4, 2018

Partial fix for #1532. I say partial because part of what we also wanted to do was clean up some of the things in the interface (now class) that have not proven useful, but, this work is already large to the point where it would be probably unwise to try to make the PR larger.

I have structured the commits so they are easy to understand, if viewed one by one. The commits with "Rename" in the description are precisely that, that is, me going to one or more types as described, hitting F2, typing something new, and that becomes my commit. Consider reviewing the other ones -- there is probably not much use in review of the rename ones. (Except perhaps to suggest a better name than Row. 😛 )

/// <see cref="CursorState.Good"/>,
/// </summary>
CursorState State { get; }
public abstract CursorState State { get; }
Copy link
Contributor Author

@TomFinley TomFinley Dec 4, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you, gentle reader, took my advice and are reviewing commit by commit, you might in reading this be tempted to note that these have no documentation. Note that the lack of documentation on these in this commit is a temporary situation I knew I would change in a subsequent commit, since when IRow itself became a class in a later commit, I then immediately turn around and delete these abstract members.

@TomFinley TomFinley added the API Issues pertaining the friendly API label Dec 4, 2018
@TomFinley TomFinley self-assigned this Dec 4, 2018

namespace Microsoft.ML.Benchmarks
{
public class CacheDataViewBench
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This benchmark was necessary because, once I made IRowCursor and IRowSeeker abstract classes, not interfaces, the internal implementation code of the CacheDataView could no longer exploit the multiple inheritance you get from interfaces, to have both have common code; I instead solved that by composition, which involves wrapping objects. (A common pattern in my changes.) I wanted to check whether this resulted in a perf degradation when I did the change in a subsequent commit. (It doesn't seem like it did.)

Copy link
Contributor

@Ivanidzo4ka Ivanidzo4ka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

Copy link
Member

@sfilipi sfilipi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

Ch.CheckParam(col == 0, nameof(col));
return Enumerable.Empty<KeyValuePair<string, ColumnType>>();
}
public override long Batch => throw new NotImplementedException();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

throw new NotImplementedException(); [](start = 42, length = 36)

flagging this one too.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @sfilipi , I believe I fixed that in my last commit (I fixed both this and the other one that you had already commented on at the same time), maybe you are looking at the older commit?

@TomFinley TomFinley merged commit 521acad into dotnet:master Dec 4, 2018
@TomFinley TomFinley deleted the tfinley/Cursor branch December 4, 2018 21:08
@ghost ghost locked as resolved and limited conversation to collaborators Mar 26, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

API Issues pertaining the friendly API

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants